Computer display products are now available which allow the researcher or word processor to study or view various types of data on a computer screen. In order to utilize such products, a user typically would employ a computer, a display screen and some means of interacting with the computer, i.e., keyboard, mouse, graphics board, etc. Often it is desirable for two or more users to view the same screen display at the same time in different locations and for such users to each have the capability to make modifications to the screen display.
One type of computer display product which is becoming increasingly popular creates windows within a screen display, where data of interest is displayed within the window. The use of windows is advantageous because windows permit the concurrent, segregated display of different data on the same display screen. The computer programming which controls window generation and the data displayed within a given window is known as a window server. One particular window server which has become popular is the X-window server, such as the X-11 windowing program developed and openly distributed by the Massachusetts Institute of Technology in Cambridge, Mass.
It has been suggested in the past to share windows, i.e., to remotely display one or more of the windows displayed on a local computer screen and further to allow remote users to make modifications to the data displayed in such windows. In particular, it has also been suggested to share windows based upon the X Window System. Basically two approaches to sharing windows have been proposed, the centralized approach and the replicated approach.
In the replicated approach a copy of the application or program which is being served by the window server is duplicated for each remote location. To ensure that the various computer screens are displaying the same information, the input from each user is merged and presented to each copy of the application for display. The replication approach has the advantages of avoiding delays in the application output path and it allows each copy of the application to provide the best rendering for each display screen. However, since each copy of the application is running independently, consistency has been a problem. In addition, all copies of the application must be started at the same time, thereby disallowing any after-the-fact sharing.
In the centralized approach, one copy of the application is run through a process, known as a bridge, which transmits rendering commands to each remote user and which merges user input and presents the merged input to the application. Although the centralized approach allows users to be added after-the-fact, there is a performance delay in the output path associated with the use of only one application.
Consequently, there is a need for devices and methods which provide for the sharing windows, allow after-the-fact sharing and which do not suffer performance delays in the output path.